# 从文件中获取图表数据
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LabelOpts

def get_chart_data(file_name):
    with open(file_name,'r',encoding='utf-8') as f:
        data = f.read()
        # 去头去尾
        left_index=data.index("(")
        right_index=data.index(")")
        # print(left_index,right_index)
        json_str=data[left_index+1:right_index]

        # json序列化
        data=json.loads(json_str)

        # 取数据
        data=data["data"][0]["trend"]
        x_data=data["updateDate"]
        y_data=data["list"][0]["data"]

        # 截断数据
        next_year_index=x_data.index("1.1")
        x_data=x_data[:next_year_index]
        y_data=y_data[:next_year_index]

        return x_data,y_data


if __name__ == '__main__':
    # 注：三个样本数据中，日期是不一致的，因此最后得到的折线图有截断，此处不再深究
    us_x_data,us_y_data=get_chart_data('../static/美国.txt')
    jp_x_data,jp_y_data=get_chart_data('../static/日本.txt')
    id_x_data,id_y_data=get_chart_data('../static/印度.txt')

    # print(type(us_x_data))
    # print(us_x_data)
    # print(us_y_data)

    line=Line()
    line.add_xaxis(us_x_data)
    line.add_yaxis("美国",us_y_data,label_opts=LabelOpts(is_show=False))
    line.add_yaxis("日本",jp_y_data,label_opts=LabelOpts(is_show=False))
    line.add_yaxis("印度",id_y_data,label_opts=LabelOpts(is_show=False))
    line.set_global_opts(title_opts=TitleOpts(title="疫情趋势图",pos_left="center",pos_bottom="1%"))
    line.render("../static/疫情趋势图.html")
    print("疫情趋势图生成完毕")
